Mobile computing devices such as, for example, personal digital assistants (PDAs), wireless laptops, mobile phones, and wearable computers often utilize mobile computing operating systems that have various disadvantages. For example, such operating systems typically use volatile memory as a persistent storage mechanism. Such a mechanism may result in the loss of state of a mobile device when device power is lost (i.e., the batteries weaken or lose their charge and the device reverts to its factory settings). Also, mobile computing operating systems typically lack authentication and encryption functions, and thus such functions have to be programmed at the application layer. Furthermore, mobile computing operating systems typically lack sophistication and thus customization and configuration of mobile devices must be performed often through provisioning and re-provisioning of the devices. Programmed authentication and encryption functions and customized programming are often expensive to implement and, when mobile devices lose power, such functions and programming may be lost.